package com.Indb.dao;

import com.Indb.pojo.Indb;
import com.Indb.util.JdbcUtils;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;

public class IndbDaoImpl implements IndbDao {
    @Override
    public int insertIndb(Indb indb) {
        String sql = "insert into `indb`(`id`,`batch_id`,`from_file`,`content`) values (?,?,?,?)";
        //受影响的记录数
        int result = 0;
        //JDBC 连接对象。代表具体到一个数据库的连接
        Connection connection = null;
        //语句预编译平台 用于执行SQL语句
        //PreparedStatement是 Java 执行数据库操作的一个重要接口
        PreparedStatement preparedStatement = null;
        //获取连接
        connection = JdbcUtils.getConnection();
        try {
            //获得语句执行平台。基于刚才写的sql语句 创建一个 可以直接操作数据库表的对象
            preparedStatement = connection.prepareStatement(sql);
            //依次设置占位符的值。占位符从1开始计数。
            preparedStatement.setInt(1, indb.getId());
            preparedStatement.setInt(2, indb.getBatch_id());
            preparedStatement.setString(3, indb.getFrom_file());
            preparedStatement.setString(4, indb.getContent());
            //参数设置完成，接下来执行SQL
            //执行SQL后的返回值 代表本次执行DML语句 受影响的行数
            result = preparedStatement.executeUpdate();
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            try {
                if (preparedStatement != null) {
                    preparedStatement.close();
                }
                if (connection != null) {
                    connection.close();
                }
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        return result;
    }
}
